When deploying an operating system to multiple computing devices, it is beneficial to utilize tools to automate the deployment process. For example, in a computing device manufacturing process, an original equipment manufacturer (OEM) typically installs an operating system (OS) with standard configurations or a standard OS in the computing device before a customer purchases it at a retail store or over the Internet. In a corporate setting, a business may need to upgrade a number of identically configured machines simultaneously and efficiently using such automated process.
Typically, the standard OS is deployed and installed automatically to the computing devices by copying or duplicating a pre-determined OS image to the computing device for booting the computing device. For example, the automated deployment and installation process would install the OS with standard configurations on a memory storage area of each of the computing devices via a wired or a wireless connection. Upgrades to OS or other applications may be installed in a similar fashion.
However, with the ongoing advancements and developments in storage media and computing device processing powers, installing a standard set of OS images to a number of computing devices no longer accounts for proper configuration of the computing devices.
One available system, Pre-Boot Execution Environment (PXE) protocol, allows a client to obtain an OS image from a PXE server in a networked environment. The client initiates the PXE process by broadcasting a PXE request in the networked environment. However, any PXE server listening for a request can read and choose to respond to the client. A disadvantage results if more than one PXE server exists in the networked environment because the client will be serviced by whichever PXE server responds the quickest to the client request. For example, if two PXE servers are in the networked environment, the first configured with application logic to service any type of device (e.g. personal computers, point of sale devices, and network servers) and a second configured to service point of sale devices, it is not possible to determine which PXE server will be the first to respond to the request from a point of sale device client. Therefore, using the PXE protocol, it is possible that the point of sale device may incorrectly receive a boot image for a personal computer.
In addition, not only does an entity need to deploy an OS on a number of different classes of computing devices, from personal digital assistants (PDAs), to server computers, to point of sale terminals, the entity also needs to consider that each class of the computing devices may require particular configurations due to hardware components. For example, a PDA “X” with a chip having a processing power of 500 MHz and a storage memory capacity of 5 GB may require a different OS image from another PDA “Y” in the same production line with a chip having a processing power of 733 MHz and a storage memory capacity of 10 GB. As such, the existing OS image deployment systems that install an OS with standard configuration or a standard OS image would not properly configure the PDA “Y” because both PDA “X” and PDA “Y” would receive the same OS image for booting the devices. In addition, current OS image deployment systems lack the ability to properly detect differences in hardware components in the computing devices to efficiently deploy and install appropriate OS images to the computing devices.
By way of further example, in existing OS boot image file deployment systems, the server responds to the request by sending a standard or a predetermined OS boot image file to the client. For example, suppose the clients sending the requests include computing devices with 32-bit architecture and computing devices with 64-bit architecture. Current deployment systems would, regardless of the different computing architecture configurations, respond to the request by sending a generic or standard OS boot image file. Thus, all clients, either with 32-bit or 64-bit architecture, would receive the same boot image file (e.g., a 32-bit boot image file). As such, under current deployment systems, the computing devices with 64-bit architecture need to perform additional evaluation and detection before sending another request to the server for a more appropriate OS boot image file, the 64-bit OS image, before the computing devices can boot accordingly.